package ar.edu.uade.centroDistribucion.controladores;

import java.util.List;

import ar.edu.uade.centroDistribucion.herramientas.FileReader;
import ar.edu.uade.centroDistribucion.Modelo.BusinessDelegate;
import ar.edu.uade.centroDistribucion.framework.*;
import ar.edu.uade.centroDistribucion.valueObjects.ArticuloVO;
import ar.edu.uade.centroDistribucion.valueObjects.RepAFVO;
import ar.edu.uade.centroDistribucion.valueObjects.VistaRepAFVO;
import ar.edu.uade.centroDistribucion.vista.VistaReposicionArticuloFabrica;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class ControladorReposicionArticuloFabrica extends BaseControlador{

	public ControladorReposicionArticuloFabrica(
			BusinessDelegate businessDelegate, BaseVista vista) {
		super(businessDelegate, vista);
		// TODO Auto-generated constructor stub
	}


	public void ProcesarRepAF(String urlXML) {
		
		RepAFVO repAFVO;
		
		repAFVO = GenerarVO(urlXML);
		EnviarVO(repAFVO);
		
		}
	
	
	private RepAFVO GenerarVO(String urlXML){
	
		try {
			FileReader fileReader = new FileReader(urlXML);
			String strXML = fileReader.obtenerContenido();
			XStream xStream = new XStream(new DomDriver());
			 
			xStream.alias("RepAF",RepAFVO.class);
			xStream.alias("Articulo",ArticuloVO.class);
			
			//Obtengo el Value Object desde el XML
			return (RepAFVO)xStream.fromXML(strXML);	
			
			}catch (Exception e) {

				System.out.println(e.getMessage() + e.toString());	
				return null;
				}
		
	}
	
	private void EnviarVO(RepAFVO repAFVO){
		
		List<VistaRepAFVO> vistaVO = this.businessDelegate.ReponerArticulos(repAFVO);
		((VistaReposicionArticuloFabrica)this.getVista()).actualizar(vistaVO);
		
	}
	
}
